package com.zyh.server.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @TableName t_order
 */
@TableName(value = "t_order")
@Data
public class Order implements Serializable {
	/**
	 * 订单号-用于唯一标识每个订单
	 */
	@TableId(value = "id")
	private String id;

	/**
	 * 支付金额
	 */
	@TableField(value = "total_fee")
	private BigDecimal totalFee;

	/**
	 * 支付类型，1、支付宝，2、微信
	 */
	@TableField(value = "payment_type")
	private Integer paymentType;

	/**
	 * 下单的用户ID
	 */
	@TableField(value = "user_id")
	private Integer userId;

	/**
	 * 订单的状态，1、未付款 2、已付款,未发货 3、已发货,未确认 4、确认收货，交易成功 5、交易取消，订单关闭 6、交易结束
	 */
	@TableField(value = "order_status")
	private Integer orderStatus;

	/**
	 * 创建时间
	 */
	@TableField(value = "create_time")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "Asia/Shanghai")
	private Date createTime;

	/**
	 * 支付时间
	 */
	@TableField(value = "pay_time")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "Asia/Shanghai")
	private Date payTime;

	/**
	 * 发货时间
	 */
	@TableField(value = "consign_time")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "Asia/Shanghai")
	private Date consignTime;

	/**
	 * 交易完成时间
	 */
	@TableField(value = "end_time")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "Asia/Shanghai")
	private Date endTime;

	/**
	 * 交易关闭时间
	 */
	@TableField(value = "close_time")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "Asia/Shanghai")
	private Date closeTime;

	@TableField(exist = false)
	private static final long serialVersionUID = 1L;

	// 配置和用户表多对一关联关系
	@TableField(exist = false)
	private User user;

	// 配置和订单详情表多对一关联关系
	@TableField(exist = false)
	private List<OrderDetail> orderDetailList = new ArrayList<>();
}